package Example3;

import java.util.Timer;
import java.util.TimerTask;

/**
 * jdk自带的定时任务的Timer和TimerTask
 */
public class TestTimerTask {
    public static void main(String[] args) {
        CountTimeTask countTimeTask=new CountTimeTask();
        Timer timer=new Timer();
        // 两秒钟之后开始执行countTimerTask任务，之后每隔一秒执行一次。
        timer.schedule(countTimeTask,2000L,3000L);


    //    Timer和TimerTask就是定时任务的基本，Spring也实现了定时任务。
    //    注意，Timer的schedule方法和scheduleAtFixedRate的区别：
    //    schedule是，上一次任务的执行时间可能会延后，那么下一次任务的执行时间也会延后，依次往后。
    //    scheduleAtFixedRate是，上一次任务的执行时间是固定的，下一次任务的执行时间也是固定的，也就是说
    //    任务的时间间隔都是相等的。存在的问题就是，可能当前任务还没执行完，就到下一个了，因此它存在并发性。
    }
}


class CountTimeTask extends TimerTask{

    @Override
    public void run() {
        System.out.println("计时器!!!"+"  执行时间:"+this.scheduledExecutionTime());

    }
}
